<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://jiangguang.net.cn/" elementFormDefault="qualified" targetNamespace="http://jiangguang.net.cn/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="AddUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="company" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="department" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="workgroup" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="userName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="realname" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="code" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="role" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="password" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="email" type="xs:string" />
        <xs:element minOccurs="1" maxOccurs="1" name="enabled" type="xs:boolean" />
        <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="BaseUserInfo">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Code" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CompanyCode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CompanyFullName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CompanyID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CurrentLanguage" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="DepartmentCode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="DepartmentFullName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="DepartmentID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="ID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="IPAddress" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsAdministrator" type="xs:boolean" />
      <xs:element minOccurs="0" maxOccurs="1" name="MACAddress" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Password" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Realname" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Role" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="RoleFullName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="StaffID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="SUID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Themes" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Username" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="WebServicePassword" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="WebServiceUsername" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="WorkgroupCode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="WorkgroupFullName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="WorkgroupID" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AddUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="AddUserResult" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="statusCode" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="statusMessage" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AddUserToRole">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="userID" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="addToRoleIDs" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ArrayOfString">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AddUserToRoleResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="AddUserToRoleResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="BatchDelete">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="ids" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="BatchDeleteResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="BatchDeleteResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Delete">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="id" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="DeleteResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Get">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="id" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetResult">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
              <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDT">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDTResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetDTResult">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
              <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDTByIDs">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="ids" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDTByIDsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetDTByIDsResult">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
              <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRole">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetRoleResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetRoleResult">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
              <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserRoleIDs">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="userID" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetUserRoleIDsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetUserRoleIDsResult" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Load">
    <xs:complexType />
  </xs:element>
  <xs:element name="LoadResponse">
    <xs:complexType />
  </xs:element>
  <xs:element name="RemoveUserFromRole">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="userID" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="removeRoleIDs" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RemoveUserFromRoleResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="RemoveUserFromRoleResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Search">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="userName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="auditStates" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="role" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SearchResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="SearchResult">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
              <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDefaultRole">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="userID" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="roleID" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDefaultRoleResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="SetDefaultRoleResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetUserAuditStates">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="ids" type="tns:ArrayOfString" />
        <xs:element minOccurs="1" maxOccurs="1" name="auditStatus" type="tns:AuditStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="AuditStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="WaitForSubmit" />
      <xs:enumeration value="SubmitOK" />
      <xs:enumeration value="StartAudit" />
      <xs:enumeration value="WaitForAudit" />
      <xs:enumeration value="AuditPass" />
      <xs:enumeration value="AuditReject" />
      <xs:enumeration value="AuditComplete" />
      <xs:enumeration value="QuashFail" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="SetUserAuditStatesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="SetUserAuditStatesResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userInfo" type="tns:BaseUserInfo" />
        <xs:element minOccurs="0" maxOccurs="1" name="id" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="userName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="realname" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="code" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="role" type="xs:string" />
        <xs:element minOccurs="1" maxOccurs="1" name="enabled" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="UpdateUserResult" type="xs:int" />
        <xs:element minOccurs="0" maxOccurs="1" name="statusCode" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="statusMessage" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HelloMessage">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="userName" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HelloMessageResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="HelloMessageResult" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>